package cn.iocoder.yudao.module.trade.framework.delivery.core.client.dto.sfexpress.sfExpressCreate;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Data;

@Data
public class CargoDetailsDTO {

    @Schema(description = "货物名称，如果需要生成电子运单，则为必填", example = "麒麟燕窝果")
    @NotEmpty(message = "货物名称不能为空")
    private String name;

    @Schema(description = "货物数量 跨境件报关需要填写")
    private Integer count;

    @Schema(description = "货物单位，如：个、台、本， 跨境件报关需要填写")
    private String unit;

    @Schema(description = "订单货物单位重量，包含子母件， 单位千克，精确到小数点后3位 跨境件报关需要填写")
    private Double weight;

    @Schema(description = "货物单价，精确到小数点后3位， 跨境件报关需要填写")
    private Double amount;

    @Schema(description = "货物单价的币别： 参照附录《国际件币别表》https://open.sf-express.com/developSupport/734349?activeIndex=482730")
    private String currency;

    @Schema(description = "原产地国别， 跨境件报关需要填写")
    private String sourceArea;

    @Schema(description = "货物产品国检备案编号")
    private String productRecordNo;

    @Schema(description = "商品海关备案号")
    private String goodPrepardNo;

    @Schema(description = "商品行邮税号")
    private String taxNo;

    @Schema(description = "海关编码")
    private String hsCode;

    @Schema(description = "商品编号")
    private String goodsCode;

    @Schema(description = "货物品牌")
    private String brand;

    @Schema(description = "货物规格型号")
    private String specifications;

    @Schema(description = "生产厂家")
    private String manufacturer;

    @Schema(description = "托寄物毛重")
    private Double shipmentWeight;

    @Schema(description = "托寄物长")
    private Double length;

    @Schema(description = "托寄物宽")
    private Double width;

    @Schema(description = "托寄物高")
    private Double height;

    @Schema(description = "托寄物体积")
    private Double volume;

    @Schema(description = "托寄物声明价值（杭州口岸必填）")
    private Double cargoDeclaredValue;

    @Schema(description = "托寄物声明价值币别（杭州口岸必填）")
    private String declaredValueDeclaredCurrency;

    @Schema(description = "货物id（逆向物流）")
    private String cargoId;

    @Schema(description = "智能验货标识(1-是,0-否) （逆向物流）")
    private Integer intelligentInspection;

    @Schema(description = "货物标识码（逆向物流）")
    private String snCode;

    @Schema(description = "国条码")
    private String stateBarCode;
}
